package main

import (
	"fmt"
	"sync"
)

var a []int
var b chan int
var wg sync.WaitGroup

func no() {
	fmt.Println(b)
	b = make(chan int) // 通道初始化 , chan必须用make初始化 会造成死锁
	//
	wg.Add(1)
	go func() {
		defer wg.Done()
		x := <-b
		fmt.Println("后台goroutine取到b", x)
	}()
	b <- 10
	fmt.Println(b)
	// <- 发送 ch1 <- 1
	// <- 接收 <-ch1
	// 关闭 close()
	wg.Wait()
}

func yes() {
	fmt.Println(b)
	b = make(chan int, 1) // 通道初始化 , chan必须用make初始化 会造成死锁
	b <- 10

	x := <-b
	fmt.Println(x)

	close(b)
}

func main() {
	no()
	yes()
}
